package hcn.api.service.api.pay;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.brandnew.feiyong.feiyongqingdan.HospitalizationExpensesResponse;
import hcn.protocol.ods.feeinquiry.*;
import hcn.util.BaseResponse;
import org.bouncycastle.jce.provider.symmetric.ARC4;

import java.util.List;

/**
 * @program: 20190427StandardEdition
 *
 * @description: 具体的业务接口
 *
 * @author: zhusm@bsoft.com.cn
 *
 * @create: 2019-05-24 16:18
 **/
public interface FeeInquiry {

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description:住院列表
     * @CreateTime: 10:08 2019/5/27
     * @Params: [json]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationFeeResponseBean> getBedFee(FeeHORequestBean json);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description:住院详情
     * @CreateTime: 10:09 2019/5/27
     * @Params: [request]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationDetailFeeResponseBean> outpatientExpensesDetail(FeeHODeatilRequestBean request);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 住院详情按日期查询
     * @CreateTime: 15:07 2019/10/10
     * @Params: [request]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationDetailToDateFeeResponseBean> outpatientExpensesDetailToDate(FeeHODeatilRequestBean request);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 获取门诊费用列表
     * @CreateTime: 9:33 2019/5/24
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.OutpatientFeeResponseBean>
     **/
    @RpcService
    BaseResponse<OutpatientFeeResponseBean> listBill(FeeHORequestBean json);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 门诊详情
     * @CreateTime: 10:10 2019/5/27
     * @Params: [request]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.OutpatientDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<OutpatientDetailFeeResponseBean> listHospitalizationPayment(FeeHODeatilRequestBean request);


    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 查询出院带药信息
     * @CreateTime: 13:34 2019/6/12
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.DischargeMedicationInformationResponse>
     **/
    @RpcService
    BaseResponse<DischargeMedicationInformationResponse> getDischargeMedicationInformation(DischargeMedicationInformationRequest request);

    /***
     * @Author: yangy@bsoft.com.cn
     * @Description: 查询出院带药信息-xml
     * @CreateTime: 13:34 2020/11/13
     * @Params: DischargeMedicationInformationRequest
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.DischargeMedicationInformationResponse>
     **/
    @RpcService
    BaseResponse<List<DischargeMedicationInformationResponse>> getXmlDischargeMedicationInformation(DischargeMedicationInformationRequest request) throws ControllerException;


    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 手术状态列表
     * @CreateTime: 14:46 2019/6/12
     * @Params: [orgId, patientCodeList, status]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.SurgeryStatusList>
     **/
    @RpcService
    BaseResponse<SurgeryStatusList> getSurgeryStatus(String orgId,Integer queryType, String patientMedicalCardNumberList,String patientIdentityCardList, String patientCodeList,String operationId,String hisUrl);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 获取手术详情
     * @CreateTime: 16:21 2019/6/17
     * @Params: [orgId, operationId]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.SurgeryStatusDetails>
     **/
    @RpcService
    BaseResponse<SurgeryStatusDetails> getSurgeryDetails(String orgId,String operationId,String hisUrl);
    /**
     * @Author:FangZhiyi
     * @Description 门诊费用列表
     * @Data Created in 2020/11/9 14:21
     * @Moddified By:
     */
    @RpcService
    BaseResponse<OutpatientFeeResponseBean> listBillXML(FeeHORequestBean json) throws ControllerException;

    @RpcService
    BaseResponse<OutpatientFeeResponseBean> listOutpatientBillXML(FeeHORequestBean json) throws ControllerException;

    /**
     * @Author:FangZhiyi
     * @Description 门诊费用详情
     * @Data Created in 2020/11/9 14:21
     * @Moddified By:
     */
    @RpcService
    BaseResponse<HospitalizationDetailFeeResponseBean> outpatientExpensesDetailXML(FeeHODeatilRequestBean request) throws ControllerException;



}
